﻿using System;
using System.Runtime.InteropServices;

namespace maranov.SymlinkManager.FilesystemLinks
{
    public abstract partial class Link
    {
        /// <summary>
        /// Retrieves the calling thread's last-error code value.
        /// The last-error code is maintained on a per-thread basis.
        /// Multiple threads do not overwrite each other's last-error code.
        /// </summary>
        /// <returns>
        /// The return value is the calling thread's last-error code.
        /// The Return Value section of the documentation for each function
        /// that sets the last-error code notes the conditions under which 
        /// the function sets the last-error code. Most functions that set 
        /// the thread's last-error code set it when they fail. However, 
        /// some functions also set the last-error code when they succeed. 
        /// If the function is not documented to set the last-error code, 
        /// the value returned by this function is simply the most recent 
        /// last-error code to have been set; some functions set the last-
        /// error code to 0 on success and others do not.
        /// </returns>
        [DllImport("Kernel32", CharSet = CharSet.Auto)]
        public static extern Int32 GetLastError();
    }
}
